package Impl;

import Model.Plane;

/**
 * 在这个策略模式中，子类的shoot方法的参数列表是不同的
 * 1. 可以把ShootBehavior设为接口，然后设置多个shoot方法分别有不同的参数列表
 * 然后选择实现对应的那个shoot方法，其余shoot方法写出来但不做实现
 * 2. 使用一个interface “Target”用于参数传递，Duck和Plane实现这个接口
 * 使用instanceof解析target的类型是Plane or Duck
 */
public abstract class ShootBehavior {
    public abstract void shoot(Target target);
    // 没有参数的shoot方法
    public abstract void shoot();
}
